package com.smart.manager.system.entities.models;

import com.smart.common.entities.core.BaseLongModel;
import com.smart.common.entities.option.SelectOption;
import com.smart.manager.system.entities.assembler.MenuMeta;
import com.smart.manager.system.entities.enums.MenuAttribute;
import io.ebean.annotation.DbArray;
import io.ebean.annotation.DbJson;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.persistence.Entity;
import java.util.List;

/**
 * 系统管理-后台菜单-1.0
 *
 * @TableName system_menu
 */

@EqualsAndHashCode(callSuper = true)
@Entity
@Data
@Accessors(chain = true)
public class SystemMenu extends BaseLongModel {




    /**
     * 上级菜单
     */
    private Long parentId;

    /**
     * 菜单属性 枚举 1=模块 2=目录 3=页面
     */
    private MenuAttribute attribute;

    /**
     * Vue组件名称
     */
    private String name;

    /**
     * 访问路径
     */
    private String path;

    /**
     * vue组件路径
     */
    private String component;

    /**
     * 显示排序
     */
    private Integer sort;




    /**
     * 菜单路由元数据
     */
    @DbJson
    private MenuMeta meta;

    /**
     * 当前菜单包含的API_TOKEN
     */
    @DbArray
    private List<String> apiTokens ;
    /**
     * 充血字段 菜单功能列表
     */

    private transient List<SelectOption> apiList;

}